// 引入 Count的UI组件
import CountUI from '../../components/Count';
// 引入connect用于连接UI组件与redux
import {connect} from "react-redux";

import {
	createIncrementAction,
	createDecrementAction,
	createIncrementAsyncAction} from '../../redux/count_action';

/**
 * mapStateToProps函数返回的是一个对象, 用于传递状态
 * @param state
 * @returns {{count}}
 */
function mapStateToProps(state) {
	return {
		// 状态
		count: state
	}
}

/**
 *
 * @param dispatch
 * @returns {{jia: jia}}
 */
function mapDispatchToProps(dispatch) {
	return {
		// 操作状态的方法
		jia: (number) => {
			// 通知redux执行加法
			dispatch(createIncrementAction(number))
		},

		jian: (number) => {
			dispatch(createDecrementAction(number));
		},

		jiaAsync: (number, time) => {
			dispatch(createIncrementAsyncAction(number, time))
		}
	}
}

// 创建并暴露一个Count的容器组件
// connect 方法的两个参数位置不能交换!!
export default connect(mapStateToProps, mapDispatchToProps)(CountUI);